<?php
namespace Home\Controller;
use Think\Controller;
class HController extends Controller {
    //表示当前访问的用户的id，可以是自己也可以是别人
    protected $userId;
    //是否访问自己的空间，为真则表示访问的自己的空间，为假则表示访问的其它人的空间
    protected $isMy = true;
    //当前访问的用户数据
    protected $userData;
    //当前登录的用户数据
    protected $myUserData = null;
    //不需要传user_id访问的方法
    protected $noIdAction=array('infocenter');
    public function _initialize(){
        if(empty($_SESSION['qzone']['home']))
        {
            //如果没有登录，并且访问的不是login方法的话，则跳转到login方法

            if(empty(cookie('qzone')['homeUserName']) || empty(cookie('qzone')['homePassWd']))
            {
                //没有保存cookie
                if(ACTION_NAME != 'login')
                {
                    // $this->error('请先登录！',U('User/login'));
                    header("Location:".U('User/login'));exit;
                }
            }else
            {
                //保存了cookie，验证并登录
                $result = $this->cookieLogin(cookie('qzone')['homeUserName'],cookie('qzone')['homePassWd']);
               if($result)
               {
                   //登录成功
                   $_SESSION['qzone']['home']['id'] = $result['id'];
                   $_SESSION['qzone']['home']['username'] = $result['username'];
                   header("Location:".U('Index/index'));
                   exit;
               }else
               {
                   $this->error('请先登录！',U('User/login'));
               }
            }
        }else
        {
            if(ACTION_NAME == 'login')
            {
                $this->error('请不要重复登录！',U('Index/index'));
            }
        }
        /*检测访问的自己的空间还是别人的空间,如果访问别人的空间再次检测是否有效，如果无效，则访问自己的空间
         *如果访问的是个人中心，则不需要带上user_id。那么也就是说，可能并不仅仅只有这一个不需要带user_id的，那么就需要添加一个检测是否为不带id访问的方法
        */
        $this->myUserData = I('session.qzone')['home'];
        if(in_array(ACTION_NAME,$this->noIdAction))
        {
            //访问的是不需要传user_id的页面
            return true;
        }
        /*if(empty($_GET['user_id']) || ($this->userData = M('User')->field('id,username,zonename,zonedp')->where("id='{$_GET['user_id']}'")->find()) == null)
        {
            //没有传id过来，跳转到自己的主页
            header("Location:".U('Index/index',array('user_id'=>$this->myUserData['id'])));
            exit;
        }
        $this->userId = $_GET['user_id'];*/
        $this->userId = $_GET['user_id'];//自己添加的控制

        $this->visit_record($this->userId);
        if($this->userId != $this->myUserData['id'])
        {
            //访问的不是自己，view层根据这个变量来控制页面的显示
            $this->isMy = false;
        }

    }
    //如果没有登录，调用此方法使用cookie登录
    protected function cookieLogin($username,$passwd)
    {
        $user = D('User');
        $result = $user->vlogin($username,$passwd);
        if($result)
        {
            return $result;
        }
        return false;
    }

    //记录访客
    public function visit_record($vid){
        $uid = $_SESSION['qzone']['home']['id'];

        if(!empty($vid)){
            if($vid!=$uid){
                $visitor_mdl = M('visitor');
                $data['uid'] = $uid;
                $data['vid'] = $vid;
                $data['vtime'] = time();
                $res = $visitor_mdl->add($data);
            }
        }
        
    }
}